home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / ai / prlg195b.lzh / EXPERT.LZH / PRODSYS / AXBCPD.PRO < prev    next >
Text File  |  1980-01-01  |  3KB  |  47 lines

  1. obj('VERY BAD'):-gen('symbolic') , gen('oper') , affirm('result: x-c = -b/a').
  2. obj('BAD: a divide to c'):-gen('symbolic'),gen('oper'),
  3.         affirm('result: x = c - b/a').
  4. obj('BAD: a divide to b'):-gen('symbolic'),gen('oper'),affirm('x = c/a - b').
  5. obj('WELL'):-gen('symbolic') , gen('oper'),
  6.         affirm('x = c/a - b/a') ,affirm('or: x = (c - b)/a').
  7. obj('CONFUSE'):- gen('zero_b') , affirm('is tricky') ,
  8.         affirm('could be a = 0') , affirm('tricky x = 0?').
  9. obj('OPTIMUM'):- gen('zero_b'),gen('zero_b'),deny('x = c'),affirm('x = c/a').
  10. obj('BAD: a divides c'):- gen('b_zero'),affirm('insist x = c').
  11.  
  12. obj('BAD:lacks division 1st term'):- gen('numeric'),
  13.         datum(a(A)),datum(b(B)),datum(c(C)), V is -1*B,
  14.         print('  x = ',C,' + (',V,'/',A,')   '),affirm('right').
  15. obj('BAD:lacks division 2nd term'):-
  16.         datum(a(A)),datum(b(B)),datum(c(C)), V is -1*B,
  17.         print('  x = ',C,'/',A,' + ',V,'  '),affirm('is ok').
  18. obj('BAD: sign error'):- datum(a(A)),datum(b(B)),datum(c(C)), V is -1*B,
  19.         print('  x = ',C,'/',A,' - (',V,'/',A,')  '),affirm('is final').
  20. obj('FINE'):- datum(a(A)),datum(b(B)),datum(c(C)),M is C/A, N is B/A,
  21.         print('x = ',C,'/',A,' - (',B,'/',A,')  '),affirm('obvious'),
  22.         print('x = ',M,' - (',N,')  '),affirm('that`s it'), Q is M - N,
  23.         print('x = ',Q,'  '), affirm('verify').
  24. obj('BAD: lacks division by c'):-gen('b_zero'),affirm('insist x = c').
  25.  
  26. gen('symbolic'):-affirm('analize symbolically ax + b = c'),affirm('a # 0'),
  27.         affirm('b or c could be 0').
  28. gen('oper'):- affirm('b # 0'),affirm('b pass negated to right'),
  29.     affirm('divide by a').
  30. gen('zero_b'):-gen('symbolic'),affirm('make b = 0'),
  31.         affirm('divide by a').
  32. gen('zero_b'):- gen('symbolic'),deny('x = c').
  33. gen('b_zero'):- gen('symbolic'),affirm('insist x = c').
  34.  
  35. gen('numeric'):-affirm('have assigned values to: a,b,c in ax + b = c'),!,
  36.               datum(a(A)),datum(b(B)),datum(c(C)),
  37.               print(A,'x + ',B,' = ',C),nl,affirm('is the equation').
  38. gen('numeric'):-print('ERROR: assign numerical values\n\t\tRET'),ratom(_),menu.
  39.  
  40. data:-cls,print('\nNumerical values (FLOAT or INT) for: a,b,c in ax + b = c'),
  41. print('\nOnly integers, divisions rounded to integers, try b,c>a    <RET>,'),
  42. print('\nWrite :\n'),
  43. print('a = '),rnum(A),asserta(datum(a(A))),
  44. print('b = '),rnum(B),asserta(datum(b(B))),
  45. print('c = '),rnum(C),asserta(datum(c(C))),asserta(datum(yes)),menu.
  46. data:- print('\nERROR a MUST BE # 0\t\t\t\RET'),ratom(_),menu.
  47.